<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      let p = new Promise(function (resolve, reject) {
        // 回调函数里面是正在进行时
        console.log("hello"); // hello
        setTimeout(() => {
          console.log("我是成功的延时器"); // 我是成功的延时器
          resolve(); // 如果这里的延时器触发时间更短，执行第一个参数(resolve)的函数，第二个参数(reject)的函数就不会执行
        }, Math.random() * 1000); // 延时器触发的时间随机
        setTimeout(() => {
          console.log("我是失败的延时器"); // 我是失败的延时器
          reject(); // 如果这里的延时器触发时间更短，执行第二个参数(reject)的函数，第一个参数(resolve)的函数就不会执行了
        }, Math.random() * 1000); // 延时器触发的时间随机
      });
      p.then(() => {
        // 实例的then方法在成功时执行
        console.log("成功了");
      });
      p.catch(() => {
        // 实例的catch方法在失败时执行
        console.log("失败了");
      });
    </script>
  </body>
</html>
